www.gusucode.com > wxApp PHP版微信小程序CMS系统 v1.0PHP源码程序 > wxApp PHP版微信小程序CMS系统 v1.0/wxAppCMS_v1.0.0/wxAppCMS_v1.0.0/app/category/category.admincp.php
<?php /** * iCMS - i Content Management System * Copyright (c) 2007-2017 iCMSdev.com. All rights reserved. * * @author icmsdev <master@icmsdev.com> * @site https://www.icmsdev.com * @licence https://www.icmsdev.com/LICENSE.html */ defined('iPHP') OR exit('What are you doing?'); class categoryAdmincp { public $callback = array(); protected $category_uri = APP_URI; protected $category_furi = APP_FURI; protected $category_name = "节点"; /** * 模板 */ protected $category_template = array( 'index' =>array('首页','{iTPL}/category.index.htm'), 'list' =>array('列表','{iTPL}/category.list.htm'), ); /** * URL规则 */ protected $category_rule = array( 'index' => array('首页','/{CDIR}/','{CID},{0xCID},{CDIR}'), 'list' => array('列表','/{CDIR}/index_{P}{EXT}','{CID},{0xCID},{CDIR}'), ); /** * URL规则选项 */ protected $category_rule_list = array(); protected $_app = 'content'; protected $_app_name = '内容'; protected $_app_table = 'content'; protected $_app_cid = 'cid'; protected $_view_add = 'category.add'; protected $_view_manage = 'category.manage'; protected $_view_tpl_dir = null; public static $sappid = null; public function __construct($appid = null,$dir=null) { // self::$sappid = apps::id(__CLASS__); $this->cid = (int)$_GET['cid']; $this->appid = null; $appid && $this->appid = $appid; $_GET['appid'] && $this->appid = (int)$_GET['appid']; $this->_view_tpl_dir = $dir; category::$appid = $this->appid; } public function do_add($default=null){ if($this->cid) { category::check_priv($this->cid,'e','page'); $rs = iDB::row("SELECT * FROM `#iCMS@__category` WHERE `cid`='$this->cid' LIMIT 1;",ARRAY_A); $rootid = $rs['rootid']; $rs['rule'] = json_decode($rs['rule'],true); $rs['template'] = json_decode($rs['template'],true); $rs['config'] = json_decode($rs['config'],true); iPHP::callback(array("apps_meta","get"),array(iCMS_APP_CATEGORY,$this->cid,false)); }else { $rootid = (int)$_GET['rootid']; $rootid && category::check_priv($rootid,'a','page'); } if(empty($rs)) { $rs = array( 'pid' => '0', 'status' => '1', 'config' => array( 'ucshow' => '1', 'send' => '1', 'examine' => '1', ), 'sortnum' => '0', 'mode' => '0', 'htmlext' => iCMS::$config['router']['ext'], ); if($rootid){ $rootRs = iDB::row("SELECT * FROM `#iCMS@__category` WHERE `cid`='".$rootid."' LIMIT 1;",ARRAY_A); $rs['htmlext'] = $rootRs['htmlext']; $rs['rule'] = json_decode($rootRs['rule'],true); $rs['template'] = json_decode($rootRs['template'],true); $rs['config'] = json_decode($rootRs['config'],true); } if($default){ $rs = array_merge($rs,(array)$default); } } iPHP::callback(array("formerApp","add"),array(iCMS_APP_CATEGORY,$rs,true)); include admincp::view($this->_view_add,$this->_view_tpl_dir); } public function do_save(){ $appid = $this->appid===null?(int)$_POST['appid']:$this->appid; $cid = (int)$_POST['cid']; $rootid = (int)$_POST['rootid']; $status = (int)$_POST['status']; $sortnum = (int)$_POST['sortnum']; $mode = (int)$_POST['mode']; $pid = implode(',', (array)$_POST['pid']); $_pid = iSecurity::escapeStr($_POST['_pid']); $_rootid_hash = iSecurity::escapeStr($_POST['_rootid_hash']); $name = iSecurity::escapeStr($_POST['name']); $subname = iSecurity::escapeStr($_POST['subname']); $domain = iSecurity::escapeStr($_POST['domain']); $htmlext = iSecurity::escapeStr($_POST['htmlext']); $url = iSecurity::escapeStr($_POST['url']); $password = iSecurity::escapeStr($_POST['password']); $pic = iSecurity::escapeStr($_POST['pic']); $mpic = iSecurity::escapeStr($_POST['mpic']); $spic = iSecurity::escapeStr($_POST['spic']); $dir = iSecurity::escapeStr($_POST['dir']); $title = iSecurity::escapeStr($_POST['title']); $keywords = iSecurity::escapeStr($_POST['keywords']); $description = iSecurity::escapeStr($_POST['description']); $rule = iSecurity::escapeStr($_POST['rule']); $template = iSecurity::escapeStr($_POST['template']); $config = (array)iSecurity::escapeStr($_POST['config']); if($_rootid_hash){ $_rootid = auth_decode($_rootid_hash); if($rootid!=$_rootid){ return iUI::alert('非法数据提交!'); }else{ category::check_priv($_rootid,'a','alert'); } } if($cid && $cid==$rootid){ return iUI::alert('不能以自身做为上级'.$this->category_name); } if (empty($name)) { return iUI::alert($this->category_name.'名称不能为空!'); } if($mode=="2"){ foreach ($rule as $key => $value) { $CR = $this->category_rule[$key]; $CRKW = explode(',', $CR[2]); $cr_check = true; foreach ($CRKW as $i => $crk) { if(strpos($value,$crk) !== FALSE){ $cr_check = false; } } if($cr_check && empty($domain) && $key!='tag'){ return iUI::alert('伪静态模式'.$CR[0].'规则必需要有'.$CR[2].'其中之一'); } } } //内容元属性 if($config['meta']){ $meta = array(); foreach($config['meta'] AS $mk=>$meta){ if($meta['name']){ $meta['key'] OR $meta['key'] = strtolower(iPinyin::get($meta['name'])); if(!preg_match("/[a-zA-Z0-9_\-]/",$meta['key'])){ return iUI::alert('只能由英文字母、数字或_-组成(不支持中文),留空则自动以名称拼音填充'); } $meta['key'] = trim($meta['key']); $config['meta'][$mk] = $meta; } } } $rule = addslashes(json_encode($rule)); $template = addslashes(json_encode($template)); $config = addslashes(json_encode($config)); iMap::init('prop',iCMS_APP_CATEGORY,'pid'); $fields = array( 'rootid','pid','appid','sortnum','name','subname','password', 'title','keywords','description','dir', 'mode','domain','url','pic','mpic','spic','htmlext', 'rule','template','config','status'); $data = compact ($fields); if(empty($cid)) { category::check_priv($rootid,'a','alert'); $nameArray = explode("\n",$name); $_count = count($nameArray); foreach($nameArray AS $nkey=>$_name){ $_name = trim($_name); if(empty($_name)) continue; if($_count=="1"){ if(empty($dir) && empty($url)) { $dir = strtolower(iPinyin::get($_name)); } }else{ empty($url) && $dir = strtolower(iPinyin::get($_name)); } $mode=="2" && $this->check_dir($dir,$this->appid,$url); $data['name'] = $_name; $data['dir'] = $dir; $data['userid'] = members::$userid; $data['creator'] = members::$nickname; $data['addtime'] = time(); $data['count'] = '0'; $data['comments'] = '0'; $cid = iDB::insert('category',$data); iDB::update('category', array('sortnum'=>$cid), array('cid'=>$cid)); iPHP::callback(array("apps_meta","save"),array(iCMS_APP_CATEGORY,$cid)); iPHP::callback(array("formerApp","save"),array(iCMS_APP_CATEGORY,$cid)); $pid && iMap::add($pid,$cid); } $msg = $this->category_name."添加完成!请记得更新缓存!"; }else { if(empty($dir) && empty($url)) { $dir = strtolower(iPinyin::get($name)); } category::check_priv($cid,'e','alert'); $mode=="2" && $this->check_dir($dir,$this->appid,$url,$cid); $data['dir'] = $dir; iDB::update('category', $data, array('cid'=>$cid)); iPHP::callback(array("apps_meta","save"),array(iCMS_APP_CATEGORY,$cid)); iPHP::callback(array("formerApp","save"),array(iCMS_APP_CATEGORY,$cid)); iMap::diff($pid,$_pid,$cid); $msg = $this->category_name."编辑完成!请记得更新缓存!"; } $this->cahce_item($cid); // $this->config(); iPHP::callback(array("spider","callback"),array($this,$cid)); if($this->callback['return']){ return $this->callback['return']; } iUI::success($msg,'url:'.$this->category_uri); } public function do_update(){ foreach((array)$_POST['name'] as $cid=>$name){ $name = iSecurity::escapeStr($name); iDB::query("UPDATE `#iCMS@__category` SET `name` = '$name',`sortnum` = '".(int)$_POST['sortnum'][$cid]."' WHERE `cid` ='".(int)$cid."' LIMIT 1"); //$this->cahce_item($cid); } iUI::success('更新完成'); } public function do_batch(){ $_POST['id'] OR iUI::alert("请选择要操作的".$this->category_name); $id_array = (array)$_POST['id']; $ids = implode(',',$id_array); $batch = $_POST['batch']; switch($batch){ case 'move': $tocid = (int)$_POST['tocid']; foreach($id_array as $k=>$cid){ $tocid!=$cid && iDB::query("UPDATE `#iCMS@__category` SET `rootid` ='$tocid' WHERE `cid` ='$cid'"); } // $this->cache(true,$this->appid); iUI::success('更新完成!','js:1'); break; case 'merge': $tocid = (int)$_POST['tocid']; foreach($id_array as $k=>$cid){ if($tocid!=$cid){ $this->mergecontent($tocid,$cid); $this->do_del($cid,false); } } $this->update_app_count($tocid); // $this->cache(true,$this->appid); iUI::success('更新完成!','js:1'); break; case 'dir': $mdir = iSecurity::escapeStr($_POST['mdir']); if($_POST['pattern']=='replace') { $sql = "`dir` = '$dir'"; } if($_POST['pattern']=='addtobefore'){ $sql = "`dir` = CONCAT('{$mdir}',dir)"; } if($_POST['pattern']=='addtoafter'){ $sql = "`dir` = CONCAT(dir,'{$mdir}')"; } foreach($id_array as $k=>$cid){ $sql && iDB::query("UPDATE `#iCMS@__category` SET {$sql} WHERE `cid` ='".(int)$cid."' LIMIT 1"); } iUI::success('目录更改完成!','js:1'); break; case 'mkdir': foreach($id_array as $k=>$cid){ $name = iSecurity::escapeStr($_POST['name'][$cid]); $dir = iPinyin::get($name); $this->check_dir($dir,$this->appid,null,$cid); iDB::query("UPDATE `#iCMS@__category` SET `dir` = '$dir' WHERE `cid` ='".(int)$cid."' LIMIT 1"); } iUI::success('更新完成!','js:1'); break; case 'update': foreach($id_array as $k=>$cid){ $name = iSecurity::escapeStr($_POST['name'][$cid]); $dir = iSecurity::escapeStr($_POST['dir'][$cid]); iDB::query(" UPDATE `#iCMS@__category` SET `name` = '$name',`dir` = '$dir' WHERE `cid` ='".(int)$cid."' LIMIT 1 "); } iUI::success('更新完成!','js:1'); break; case 'status': $val = (int)$_POST['status']; $sql ="`status` = '$val'"; break; case 'mode': $val = (int)$_POST['mode']; $sql ="`mode` = '$val'"; break; case 'rule': $rule = iSecurity::escapeStr($_POST['rule']); $rule = addslashes(json_encode($rule)); $sql ="`rule` = '$rule'"; break; case 'template': $template = iSecurity::escapeStr($_POST['template']); $template = addslashes(json_encode($template)); $sql ="`template` = '$template'"; break; case 'recount': foreach($id_array as $k=>$cid){ $this->update_app_count($cid); } iUI::success('操作成功!','js:1'); break; case 'dels': iUI::$break = false; foreach($id_array AS $cid){ category::check_priv($cid,'d','alert'); $this->do_del($cid,false); //$this->cahce_item($cid); } iUI::$break = true; iUI::success('全部删除完成!','js:1'); break; } $sql && iDB::query("UPDATE `#iCMS@__category` SET {$sql} WHERE `cid` IN ($ids)"); // $this->cache(true,$this->appid); iUI::success('操作成功!','js:1'); } /** * [更新排序] * @return [type] [description] */ public function do_updateorder(){ foreach((array)$_POST['sortnum'] as $sortnum=>$cid){ iDB::query("UPDATE `#iCMS@__category` SET `sortnum` = '".intval($sortnum)."' WHERE `cid` ='".intval($cid)."' LIMIT 1"); //$this->cahce_item($cid); } } public function do_iCMS(){ $tabs = iPHP::get_cookie(admincp::$APP_NAME.'_tabs'); $tabs=="list"?$this->do_list():$this->do_tree(); } /** * [树模式] * @return [type] [description] */ public function do_tree() { menu::$url = __ADMINCP__.'='.admincp::$APP_NAME; admincp::$APP_DO = 'tree'; include admincp::view($this->_view_manage,$this->_view_tpl_dir); } /** * [列表模式] * @return [type] [description] */ public function do_list(){ menu::$url = __ADMINCP__.'='.admincp::$APP_NAME; admincp::$APP_DO = 'list'; $sql = " WHERE 1=1"; if($this->appid){ $sql.= " AND `appid`='{$this->appid}'"; $apps = apps::get($this->appid); } $cids = category::check_priv('CIDS','s'); $sql.= iSQL::in($cids,'cid'); if($_GET['keywords']) { if($_GET['st']=="name") { $sql.=" AND `name` REGEXP '{$_GET['keywords']}'"; }else if($_GET['st']=="cid") { $sql.=" AND `cid` REGEXP '{$_GET['keywords']}'"; }else if($_GET['st']=="tkd") { $sql.=" AND CONCAT(name,title,keywords,description) REGEXP '{$_GET['keywords']}'"; } } if(isset($_GET['rootid']) &&$_GET['rootid']!='-1') { $sql.=" AND `rootid`='{$_GET['rootid']}'"; } list($orderby,$orderby_option) = get_orderby(array( 'cid' =>"CID", 'dir' =>"目录值", 'count' =>"记录数", )); $maxperpage = $_GET['perpage']>0?(int)$_GET['perpage']:50; $total = iCMS::page_total_cache("SELECT count(*) FROM `#iCMS@__category` {$sql}","G"); iUI::pagenav($total,$maxperpage); $rs = iDB::all("SELECT * FROM `#iCMS@__category` {$sql} order by {$orderby} LIMIT ".iUI::$offset." , {$maxperpage}"); $_count = count($rs); include admincp::view($this->_view_manage,$this->_view_tpl_dir); } public function do_copy(){ iDB::query(" INSERT INTO `#iCMS@__category` ( `name`,`dir`, `rootid`, `pid`, `appid`, `userid`, `creator`, `subname`, `sortnum`, `password`, `title`, `keywords`, `description`, `url`, `pic`, `mpic`, `spic`, `count`, `mode`, `domain`, `htmlext`, `rule`, `template`,`config`, `comments`, `status`, `addtime` ) SELECT CONCAT(`name`,'副本'),CONCAT(`dir`,'fuben'), `rootid`, `pid`, `appid`, `userid`, `creator`, `subname`, `sortnum`, `password`, `title`, `keywords`, `description`, `url`, `pic`, `mpic`, `spic`, `count`, `mode`, `domain`, `htmlext`, `rule`, `template`,`config`,`comments`, `status`, `addtime` FROM `#iCMS@__category` WHERE cid = '$this->cid'"); $cid = iDB::$insert_id; iUI::success('克隆完成,编辑此'.$this->category_name, 'url:' . APP_URI . '&do=add&cid=' . $cid); } public function do_del($cid = null,$dialog=true){ $cid===null && $cid=(int)$_GET['cid']; category::check_priv($cid,'d','alert'); $msg = '请选择要删除的'.$this->category_name.'!'; if(category::is_root($cid)) { $msg = '请先删除本'.$this->category_name.'下的子'.$this->category_name.'!'; }else { $this->del_content($cid); iDB::query("DELETE FROM `#iCMS@__category` WHERE `cid` = '$cid'"); iMap::del_data($cid,$this->appid,'category','node'); iMap::del_data($cid,iCMS_APP_CATEGORY,'prop'); category::cahce_del($cid); $msg = '删除成功!'; } $this->do_cache(false); $dialog && iUI::success($msg,'js:parent.$("#'.$cid.'").remove();'); } public function do_ajaxtree(){ $expanded=$_GET['expanded']?true:false; echo $this->tree((int)$_GET["root"],$expanded); } /** * [获取内容元属性设置] * @return [type] [description] */ public static function do_config_meta($ret=false,$cid=null){ $cid===null && $cid = (int)$_GET['cid']; if($cid){ $category = category::get($cid); $meta = $category->config['meta']; if($ret) return $meta; iUI::json($meta); } } public function do_cache($dialog=true){ @set_time_limit(0); categoryAdmincp::config(); $_count = category::cache(true,$this->appid); // if($_count>1000){ // $this->do_cacheall($_count); // }else{ // $this->cache_all(0,$_count); // } $dialog && iUI::success('更新完成'); } /** * [更新缓存[NOPRIV]] * @param [type] $total [description] * @return [type] [description] */ public function do_cacheall($total){ $page = (int)$_GET['page']; $alltime = (int)$_GET['alltime']; if(isset($_GET['total'])){ $total = (int)$_GET['total']; } $maxperpage = 100; $totalpage = ceil($total/$maxperpage); $offset = $page*$maxperpage; $this->cache_all($offset,$maxperpage); $use_time = iPHP::timer_stop(); $query['total'] = $total; $query['page'] = $page+1; $query['alltime'] = $alltime+$use_time; $loopurl = $this->loopurl($totalpage,$query); $memory = memory_get_usage(); $msg = "共<span class='label label-info'>{$total}</span>个栏目,". "将分成<span class='label label-info'>{$totalpage}</span>次完成". "<hr />开始执行第<span class='label label-info'>".$query['page']."</span>次缓存更新,". "共<span class='label label-info'>{$maxperpage}</span>个栏目"; $msg.="<hr />用时<span class='label label-info'>{$use_time}</span>秒,"; $msg.="使用内存:".iFS::sizeUnit($memory); if($loopurl){ $moreBtn = array( array("id"=>"btn_stop","text"=>"停止","url"=>APP_URI), array("id"=>"btn_next","text"=>"继续","src"=>$loopurl,"next"=>true) ); $dtime = 0.5; $all_time = ($totalpage-$query['page'])*$use_time+1; $msg.="<hr />预计全部缓存更新还需要<span class='label label-info'>{$all_time}</span>秒"; }else{ $moreBtn = array( array("id"=>"btn_next","text"=>"完成","url"=>APP_URI) ); $dtime = 5; $msg.="<hr />已全部生成完成<hr />总共用时<span class='label label-info'>".$query["alltime"]."</span>秒"; } $updateMsg = $page?'FRAME':false; iUI::dialog($msg,$loopurl?"src:".$loopurl:'',$dtime,$moreBtn,$updateMsg); } public function cahce_item($cid){ $C = iDB::row("SELECT * FROM `#iCMS@__category` WHERE `cid`='$cid' LIMIT 1;",ARRAY_A); category::cahce_item($C); $C = category::data($C); category::cahce_item($C,'C'); iCache::delete('category/'.$C['cid']); } public function loopurl($total,$_query){ if ($total>0 && $_GET['page']<$total){ $url = $_SERVER["REQUEST_URI"]; $urlA = parse_url($url); parse_str($urlA["query"], $query); $query = array_merge($query, (array)$_query); $urlA["query"] = http_build_query($query); $url = $urlA["path"].'?'.$urlA["query"]; return $url; } } public static function tree_unset($C){ unset( $C->rule,$C->template, $C->description,$C->keywords, $C->password,$C->mpic,$C->spic, $C->title,$C->subname,$C->iurl,$C->dir, $C->htmlext,$C->config,$C->comments ); return $C; } public function tree($cid = 0,$expanded=false,$ret=false){ category::$priv = 's'; $array = array(); $cid_array = (array)category::get_cid($cid); $cate_array = (array)category::get($cid_array); foreach($cid_array AS $root=>$_cid) { $C = (array)$cate_array[$_cid]; $a = array('id'=>$C['cid'],'data'=>$C); if(category::get_cid($C['cid'])){ if($expanded){ $a['hasChildren'] = false; $a['expanded'] = true; $a['children'] = $this->tree($C['cid'],$expanded,$ret); }else{ $a['hasChildren'] = true; } } $a && $array[] = $a; } if($ret||($expanded && $cid)){ return $array; } return $array?json_encode($array):'[]'; } // public function tree($cid = 0,$expanded=false,$ret=false){ // $tree = array(); // $rootid = iCache::get('category/rootid'); // foreach((array)$rootid[$cid] AS $root=>$_cid) { // $C = $this->cache_get($_cid); // $C['iurl'] = (array) iURL::get('category',$C); // $C['href'] = $C['iurl']['href']; // $C = $this->tree_unset($C); // $C['CP_ADD'] = category::check_priv($C['cid'],'a')?true:false; // $C['CP_EDIT'] = category::check_priv($C['cid'],'e')?true:false; // $C['CP_DEL'] = category::check_priv($C['cid'],'d')?true:false; // $a = array('id'=>$C['cid'],'data'=>$C); // if($rootid[$C['cid']]){ // if($expanded){ // $a['hasChildren'] = false; // $a['expanded'] = true; // $a['children'] = $this->tree($C['cid'],$expanded,$ret); // }else{ // $a['hasChildren'] = true; // } // } // $a && $tree[] = $a; // } // if($ret||($expanded && $cid)){ // return $tree; // } // //var_dump($html); // return $tree?json_encode($tree):'[]'; // } public function check_dir(&$dir,$appid,$url,$cid=0){ if(empty($url)){ // $sql ="SELECT `dir` FROM `#iCMS@__category` where `dir` ='$dir' AND `appid`='$appid'"; // $cid && $sql.=" AND `cid` !='$cid'"; $sql = "SELECT count(`cid`) FROM `#iCMS@__category` where `dir` ='$dir' "; $cid && $sql.=" AND `cid` !='$cid'"; $hasDir = iDB::value($sql); if($hasDir){ $count = iDB::value("SELECT count(`cid`) FROM `#iCMS@__category` where `dir` LIKE '{$dir}-%'"); $dir = $dir.'-'.($count+1); } } // iDB::value($sql) && empty($url) && iUI::alert('该'.$this->category_name.'静态目录已经存在!<br />请重新填写(URL规则设置->静态目录)'); } public static function del_app_data($appid=null){ iDB::query("DELETE FROM `#iCMS@__category` WHERE `appid` = '".$appid."'"); iDB::query("DELETE FROM `#iCMS@__category_map` WHERE `appid` = '".$appid."';"); } //接口 public function del_content($cid){ } public function merge($tocid,$cid){ iDB::query("UPDATE `#iCMS@__".$this->_app_table."` SET `".$this->_app_cid."` ='$tocid' WHERE `".$this->_app_cid."` ='$cid'"); tag::merge($tocid,$cid); //iDB::query("UPDATE `#iCMS@__push` SET `cid` ='$tocid' WHERE `cid` ='$cid'"); iDB::query("UPDATE `#iCMS@__prop` SET `cid` ='$tocid' WHERE `cid` ='$cid'"); } public function re_app_count(){ $rs = iDB::all("SELECT `cid` FROM `#iCMS@__category` where `appid`='$this->appid'"); foreach ((array)$rs as $key => $value) { $this->update_app_count($value['cid']); } } public function update_app_count($cid){ $cc = iDB::value("SELECT count(*) FROM `#iCMS@__".$this->_app_table."` where `".$this->_app_cid."`='$cid'"); iDB::query("UPDATE `#iCMS@__category` SET `count` ='$cc' WHERE `cid` ='$cid'"); } public static function update_count($cid,$math='+'){ $math=='-' && $sql = " AND `count`>0"; iDB::query("UPDATE `#iCMS@__category` SET `count` = count".$math."1 WHERE `cid` ='$cid' {$sql}"); } public static function _count($where=null){ $sql = iSQL::where($where,true); return iDB::value("SELECT count(*) FROM `#iCMS@__category` WHERE 1=1 {$sql}"); } public function batchbtn(){ $ul = '<li><a data-toggle="batch" data-action="mode"><i class="fa fa-cogs"></i> 访问模式</a></li>'; $ul.='<li class="divider"></li>'; $ul.='<li><a data-toggle="batch" data-action="rule"><i class="fa fa-link"></i> URL规则</a></li>'; $ul.='<li><a data-toggle="batch" data-action="template"><i class="fa fa-columns"></i> 模板设置</a></li>'; // foreach ($this->category_rule as $key => $value) { // $ul.='<li><a data-toggle="batch" data-action="rule_'.$key.'"><i class="fa fa-link"></i> '.$value[0].'规则</a></li>'; // } // $ul.='<li class="divider"></li>'; // foreach ($this->category_template as $key => $value) { // $ul.='<li><a data-toggle="batch" data-action="template_'.$key.'"><i class="fa fa-columns"></i> '.$value[0].'模板</a></li>'; // } return $ul; } public static function config($domain=null){ if(empty($domain)){ $rs = iDB::all(" SELECT `cid`,`domain` FROM `#iCMS@__category` WHERE `domain`!='' and `status`='1'"); foreach((array)$rs AS $C) { $domain[$C['domain']] = $C['cid']; } } configAdmincp::set(array( 'domain'=>$domain ),'category',iCMS_APP_CATEGORY,false); configAdmincp::cache(); } }